home *** CD-ROM | disk | FTP | other *** search
/ PCMania 64 / PCMania CD64_1.iso / phy / phy004 / asm / inter.asm < prev    next >
Encoding:
Assembly Source File  |  1997-05-03  |  3.1 KB  |  50 lines

  1. ;;;  Escribe en pantalla si existe un fichero.
  2.  
  3.                 JMP     Inicio          ;  Salta al verdadero inicio.
  4.  
  5. Fichero         DB      'prueba.bin',0  ;  El fichero que vamos a ver si existe.
  6.                      ;  Los mensajes de exito o fracaso (encontrado o no)
  7.                      ; Los números 0dh y 0ah que aparecen son para hacer un
  8.                      ; retorno de carro en la salida por pantalla.
  9. MsgExito        DB      'Se ha encontrado el fichero!!',0dh,0ah,'$'
  10. MsgFracaso      DB      'No se ha encontrado el fichero!!',0dh,0ah,'$'
  11.  
  12.                                         ;  Verdadero inicio.
  13. Inicio:         MOV     AX, 3D00h       ;  Seleccionamos la función de abrir
  14.                                         ; fichero con atributo sólo lectura.
  15.                 MOV     DX, Offset Fichero
  16.                                         ;  La palabra reservada offset se
  17.                                         ; encarga de darnos la dirección de
  18.                                         ; un determinado elemento.
  19.                 MOV     BX, CS          ;  Como hay que pasar en DS el segmento
  20.                 MOV     DS, BX          ; donde está el nombre (recordad el
  21.                                         ; número 3), lo tenemos que copiar
  22.                                         ; indirectamente a través de BX ya que
  23.                                         ; no se puede hacer MOV DS,CS.
  24.                 INT     21h             ;  Invocamos a la interrupción 21h
  25.                 JC      NoExiste        ;  Si falla la llamada (no existe el
  26.                                         ; fichero), la interrupción devuelve
  27.                                         ; el flag de carry a 1 y con esta
  28.                                         ; instrucción saltamos.
  29.                 MOV     BX, AX          ;  En AX nos habrá devuelto un handle
  30.                                         ; que lo pasaremos a la función de
  31.                                         ; cierre en BX.
  32.                 MOV     AH, 3Eh         ;  La función en concreto que necesitamos
  33.                                         ; es la 3Eh.
  34.                 INT     21h             ;  Llamamos a la interrupción del DOS.
  35.                 MOV     DX, Offset MsgExito
  36.                                         ;  En DS:DX tenemos que pasar a la
  37.                                         ; función de escritura en pantalla
  38.                                         ; la dirección de la cadena.
  39. Escribe:        MOV     AH, 09h         ;  Función de escritura.
  40.                 INT     21h             ;  Invocamos a la interrupción 21h
  41.                 MOV     AX, 4C00h       ;  Función de finalización de programa.
  42.                 INT     21h             ;  Volvemos a invocar la interrupción
  43.                                         ; del DOS.
  44.  
  45. NoExiste:       MOV     DX, Offset MsgFracaso
  46.                                         ;  Se salta aquí en caso de no
  47.                                         ; encontrarse el fichero. Cargamos la
  48.                                         ; dirección de la cadena de fracaso...
  49.                 JMP     Escribe         ; y saltamos para escribirla.
  50.